package com.soft.collateral.service;

import com.soft.collateral.dto.MenuDTO;
import com.soft.collateral.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface MenuService extends IService<Menu> {

    List<MenuDTO> findAll(Long userId);
    List<Menu> getAllMenus();
    Menu getMenuById(Integer id);
    boolean addMenu(Menu menu);
    boolean updateMenu(Menu menu);
    boolean deleteMenu(Integer id);
    /**
     * 级联删除菜单（包括关联的meta数据）
     * @param id 菜单ID
     * @return 删除结果
     */
    boolean deleteMenuCascade(Integer id);

    @Transactional
    boolean assignRolesToMenu(Integer menuId, Integer[] roleIds);

    @Transactional(readOnly = true)
    List<Integer> getRoleIdsByMenuId(Integer menuId);
}